Progress bar for branched videos

ABSTRACT

A system for navigating and visualizing the progression of selectably presentable video content includes a progress indicator module for dynamically displaying the progression status of video content paths made up of selectably presentable video content segments. The system further includes an interactive control module for facilitating navigation along the video content paths. The progression status may be graphically represented in the form of a tree structure having linked video content segments forming the content paths. The control module may be used to navigation the video within this tree structure.

FIELD OF THE INVENTION

The invention relates generally to representing progress in a streamingvideo, and more particularly to systems and methods for navigating andvisualizing the progress of selectably presentable branched videocontent.

BACKGROUND

A video progress bar is a component in a graphical user interface thatis used to visualize both the progression of downloaded video(buffering) and the played or viewed video. Sometimes, the graphic isaccompanied by a textual representation of the progress in a time- orpercent-based format.

Typically, progress bars use a linear function, such that theadvancement of a progress bar is directly proportional to the amount ofvideo that has been completed from the total amount of video that willbe played. However, varying disk, memory, processor, bandwidth and otherfactors often complicate this estimate.

Further, current progress indicators lack the ability to support theunique issues encountered when attempting to navigate and represent theprogress of content that plays as a single, seamless video, but is madeup of multiple paths and segments selectable in real-time by a viewer.Accordingly, there is a need for an visual progress indicator andaccompanying navigation controls that facilitate user interaction withselectable video content.

SUMMARY OF THE INVENTION

The invention provides techniques and supporting systems for navigatingand visualizing the progression of selectably presentable video content.To facilitate enhanced usability of user-facing media players, variousimplementations of the invention provide a progress indicator thatdynamically displays the progression status of video content paths madeup of selectably presentable video content segments while being viewedby a user. Aspects of the invention also provide an interactive controlmodule that assists the user in their navigation along video contentpaths. The progression status is graphically represented in the form ofa tree structure having linked video content segments forming thecontent paths, and the control module is used to navigation the videowithin this tree structure.

Therefore, in one aspect, a system for navigating and visualizing theprogression of selectably presentable video content includes a progressindicator module for dynamically displaying the progression status ofvideo content paths, each path made up of selectably presentable videocontent segments. The system further includes an interactive controlmodule that allows a viewer to navigate along the video content pathsand segments.

In some embodiments, the progression status includes a visual indicatorthat represents the portion of video content downloaded, the portion ofvideo content played, and/or the portion of video content remaining fordownload. The progression status may include visual indicatorsidentifying decision (branching) points. These indicators represent thepoints in a video when a transition may be made from one video segmentto a second segment, which may be chosen from a set of multiple segmentoptions.

In another embodiment, the progression status includes time markers thatindicate when the decision points occur within the content. The timemarkers may be measured from the beginning of the video content pathcurrently traversed by a viewer. The progression status may also displaya time interval representing an amount of time permitted, upon reachinga decision point, for a viewer to choose which video content path tocontinue upon. In one embodiment, the progression status displays anamount of time until a decision point is reached.

In some embodiments, the progression status includes option indicatorsidentifying each potential video content segment option that may beselected at a decision point. The option indicators may identify theselected segments after they are chosen at decision points. Theprogression status may be dynamically updated after each decision pointalong a traveled video content path.

In one instance, the progression status is represented as a graphicaltree structure. The tree structure may contain linked video contentsegments forming a traveled video content path prior to a current pointin time, and may further include potential segment selections branchingfrom the content path after that point. In some embodiments, the treestructure includes linked video content segments forming all of thepossible video content paths. The interactive control module mayfacilitate a viewer's navigation of the tree structure.

In some implementations, the progression status includes a display ofstatistics based on user selection of the video content segments, suchas selections made by previous viewers of the video.

The progression status may include a video content length indicator. Insome embodiments this length indicator is a maximum video duration basedon a potentially followed video path that has the longest total lengthof video content segments. In other embodiments, the length indicator isa minimum video duration based on a potentially followed video contentpath having the shortest total length of video content segments. In yetother embodiments, the length indicator is based on the average durationof all possible video content paths.

In another embodiment, the system includes a preview module fordisplaying video thumbnails associated with a point in time along thevideo content paths. The thumbnails may represent previews of differentvideo content segments potentially viewable at the point in time. Thethumbnails may be from the currently viewed content segment, or, inother cases, from potentially viewable content segments. If thethumbnail is from a potentially viewable segment, upon selection of thevideo thumbnail the control module may seek to and/or display the videocontent segment corresponding to the thumbnail.

In another aspect, a method for navigating and visualizing theprogression of selectably presentable video content includes the stepsof dynamically displaying the progression status of video content paths,each path made up of selectably presentable video content segments. Themethod further includes the step of facilitating navigation along thevideo content paths.

In some embodiments, the progression status includes a visual indicatorthat represents the portion of video content downloaded, the portion ofvideo content played, and/or the portion of video content remaining fordownload. The progression status may include visual indicatorsidentifying decision (branching) points. These indicators represent thepoints in a video when a transition may be made from one video segmentto a second segment, which may be chosen from a set of multiple segmentoptions.

In another embodiment, the progression status includes time markers thatindicate when the decision points occur within the content. The timemarkers may be measured from the beginning of the video content pathcurrently traversed by a viewer. The progression status may also displaya time interval representing an amount of time permitted, upon reachinga decision point, for a viewer to choose which video content path tocontinue upon. In one embodiment, the progression status displays anamount of time until a decision point is reached.

In some embodiments, the progression status includes option indicatorsidentifying each potential video content segment option that may beselected at a decision point. The option indicators may identify theselected segments after they are chosen at decision points. Theprogression status may be dynamically updated after each decision pointalong a traveled video content path.

In one instance, the progression status is represented as a graphicaltree structure. The tree structure may contain linked video contentsegments forming a traveled video content path prior to a current pointin time, and may further include potential segment selections branchingfrom the content path after that point. In some embodiments, the treestructure includes linked video content segments forming all of thepossible video content paths. The method may further includefacilitating a viewer's navigation of the tree structure.

In some implementations, the progression status includes a display ofstatistics based on user selection of the video content segments, suchas selections made by previous viewers of the video.

The progression status may include a video content length indicator. Insome embodiments this length indicator is a maximum video duration basedon a potentially followed video path that has the longest total lengthof video content segments. In other embodiments, the length indicator isa minimum video duration based on a potentially followed video contentpath having the shortest total length of video content segments. In yetother embodiments, the length indicator is based on the average durationof all possible video content paths.

In another embodiment, the method further includes the step ofdisplaying video thumbnails associated with a point in time along thevideo content paths. The thumbnails may represent previews of differentvideo content segments potentially viewable at the point in time. Thethumbnails may be from the currently viewed content segment, or, inother cases, from potentially viewable content segments. If thethumbnail is from a potentially viewable segment, upon selection of thevideo thumbnail the video may seek to and/or display the video contentsegment corresponding to the thumbnail.

Other aspects and advantages of the invention will become apparent fromthe following drawings, detailed description, and claims, all of whichillustrate the principles of the invention, by way of example only

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the invention and many attendantadvantages thereof will be readily obtained as the same becomes betterunderstood by reference to the following detailed description whenconsidered in connection with the accompanying drawings. In thedrawings, like reference characters generally refer to the same partsthroughout the different views. Further, the drawings are notnecessarily to scale, with emphasis instead generally being placed uponillustrating the principles of the invention.

FIG. 1 is an exemplary diagram of progress indicator structuresaccording to an embodiment of the invention.

FIG. 2 is an exemplary diagram of a progress indicator with various timemarkers according to an embodiment of the invention.

FIG. 3 is an exemplary diagram of progress indicator structures withselection option markers according to an embodiment of the invention.

FIG. 4 is an exemplary diagram of a thumbnail preview grid for aprogress indicator according to an embodiment of the invention.

FIG. 5 is an exemplary diagram of progress indicator structures havingvarious segment sizes and path lengths according to an embodiment of theinvention.

FIG. 6 is an exemplary diagram of unfolding video and associatedprogress indicators according to an embodiment of the invention.

FIG. 7 is an exemplary diagram of a detour in a progress indicatoraccording to an embodiment of the invention.

DETAILED DESCRIPTION

Described herein are various embodiments of a dynamic progress indicatorand interactive controls that provide for the visualization andnavigation of selectably presentable video content. The progressindicator may be used in conjunction with seamlessly assembled andpresented streaming video content, such as that described in U.S. patentapplication Ser. No. 13/033,916, entitled “System and Method forSeamless Multimedia Assembly,” and filed Feb. 24, 2011, the entirety ofwhich is hereby incorporated by reference. Selectably presentable videocontent may include, for example, one or more separate video contentpaths and/or segments that are seamlessly presented to a viewer as acontinuous video without noticeable interruptions in video and audioplayback between segments. In some instances, the viewer is permitted tomake choices at one or more various decision points interspersedthroughout the video content, resulting in the corresponding videosegment(s) and/or path(s) associated with the choices to be presented tothe viewer in the selected order.

Because of the distinctive characteristics of selectably presentablevideo content, such as varying numbers of video segments, video segmentlengths, different audio tracks and the like, these videos benefit froma special dynamic indicator and controller that can visually representthe progression of video play and buffering/download withinmultiple-path structures and enable viewer-directed navigation among thevarious paths of the video. The indicator may show progress informationin real-time, and update frequently in order to present statuscorrectly. Navigation may also be performed in real-time, and may befunctionally integrated into the progress indicator and/or performedusing separate buttons or other interactive controls.

The progress indicator may take several forms, with each representingthe progress of branching video content. Although the indicators arerepresented and referred to herein as horizontal bars arranged in linesor trees, it is to be appreciated that this is an exemplary embodimentof the invention, and the progress indicators may take any suitableform, shape or orientation while still accomplishing the objects of theinvention. Such forms may include, but are not limited to, circles,ovals, arcs, spirals, dials, gauges, and other forms suitable forrepresenting progress and other information associated with mediacontent.

Further, although the progress indicators are described herein withrespect to video playback, the invention is applicable to streaming andnon-streaming media, including audio, animation, video games,interactive media, and other forms of content usable in conjunction withthe present systems and methods. Streaming media may include, forexample, multimedia content that is continuously presented to a viewerwhile it is received from a content delivery source, such as a remotevideo server on the Web.

FIG. 1 illustrates exemplary forms that the progress indicator may take.In the line form 100, progress is represented as a single dynamic barthat presents different video selection options at decision points. Inthe depicted example, there are two decision points 102, 104. Uponselection of a particular content segment, the bar adjusts toaccommodate the selection, for example, by changing the video length andupdating progress statuses accordingly. The addition of the selectedcontent may increase the length of the bar. In other instances, theexisting bar and/or segments of the bar are resized to accommodate thenew content while retaining a fixed overall bar length.

In some embodiments, the progress indicator is visually represented as atree. This may include a tree structure form in which there are one ormore starting video content segments, and at the end of each segment(and/or upon reaching a decision point), the segment branches out to oneor more selectable content segments. Accordingly, as illustrated, aviewer may follow a left-to-right path containing various connectedsegments. One skilled in the art will appreciate that the treestructures described and depicted herein are merely exemplaryembodiments, and any suitable progress status structure may be used torepresent the branching media content. Such structures may include, butare not limited to, graphs, lists, flowcharts, hierarchical structures,state diagrams, and/or any combination of the foregoing.

The full tree form may include a visual representation of all videocontent paths. Still referring to FIG. 1, a full tree may take multipleforms. Full tree progress bar 110 is a simple form branching tree for avideo that has a single starting point (video segment), then, at thefirst decision point 111, branches into two paths having different videosegments 114, 116, each segment 114, 116 of equivalent length. Becausethese particular segments 114, 116 are the same length in this example,the second decision point 113 occurs at the same time for both paths. Atthis decision point 113, the paths split again, providing a total offour possible outcomes (ending video segments) and four possible pathsthat can be followed when viewing the video.

Full tree progress bar 120 is represented in railroad form; that is, oneor more possible paths are represented as a single, contiguous tracksmade up of their respective individual video content segments. At adecision point, a viewer may select an option that results in the videoproceeding down a different path. For example, and as illustrated, atdecision point 121, the viewer has made a choice (or the video playerhas automatically made a selection) resulting in the video previouslyplaying on path 124 to continue instead on path 126.

In an additional example of the full tree form, progress bar 130includes a number of content segments of varying length, formingnumerous paths that can be taken throughout the viewing/downloading of avideo. After the first decision point 131, the following video contentsegments each have different lengths. Thus, subsequent decision pointsoccur at different times depending on which path is traversed. Videocontent segments may be shared among paths; for example, segment 135 canbe reached after a decision point in both segments 132 and 134.

In the partial tree form 140, rather than displaying all possible videopaths and/or segments, only a subset of the paths/segments is shown. Forexample, partial tree progress bar 140 shows only the segments of thepath that have been played up to the current point in time 145, as wellas the available choices 142, 144 after that time 145. The visualdisplay may be limited to the available choices branching from thecurrent video segment, or it may include all potential future segments.Past paths not followed and/or future segments not yet selected may bepermanently hidden, or may be shown to a viewer by, for example, settinga preference or operating a GUI control.

In some embodiments, the progress bar structure is loaded prior to thevideo content loading, while in other embodiments, the progress bar andvideo content load in parallel. The progress indicator may be fullypresented from the beginning of play, with chosen segments highlightedafter each decision point. Alternatively, the bar may be shown only upto a certain point (e.g., up to the amount of video loaded (buffered),up to the amount of video played, or up to the end of the current videosegment). The progress bar may dynamically add or remove video segmentsand/or paths from its display while the video is playing. In someembodiments, intelligent buffering of the video, audio, and/or othermedia content is performed as described in U.S. patent application Ser.No. 13/437,164, entitled “Systems and Methods for Loading More Than OneVideo Content at a Time,” and filed Apr. 2, 2012, the entirety of whichis hereby incorporated by reference.

Traversal of the video content may be performed by selecting amongoptions that appear on and/or around the video while the video isplaying. The video segment that is played after the current playingsegment is determined based on the option selected. Each option mayresult in a different video segment being played. The transition to thenext video segment may be done immediately upon selection, at the end ofthe current segment, or at some other predefined point. Notably, thetransition between content segments may be seamless. In other words, thevideo may continue playing regardless of whether segment selection ismade, and no noticeable gaps appear in audio or video playback betweenany connecting segments. In some instances, the video continues on to afollowing segment after a certain amount of time if none is chosen, ormay continue playing in a loop. If a video segment is missing,corrupted, or has otherwise failed to load, the progress bar may providean indicator that the segment is missing and enable a viewer to jump tothe end of (or past) the missing segment at any time.

The progress indicator may include various visualized information itemsin graphical and/or textual form. This information may include, forexample, the progression of downloaded video content, the progression ofplayed video content, and/or a percentage value representing theforegoing progressions. When displayed in a tree form, the progressindicator may show this information for each branch and/or contentsegment. In some embodiments, the progress indicator includes markersdelineating branching points; i.e., points (or ranges) in time at whichthe viewer can select to transition to a new video content segment.These decision point markers may be placed at the ends of contentsegments (i.e., at the point of transition to the next content segment),or at any point (or range in time) in a video segment where a viewer ispermitted to select a video path to traverse.

In some embodiments, the progress indicator includes time-basedinformation for presentation to a viewer. FIG. 2 depicts a progress bar200 associated with a video content path indicating that the video hasbeen played up to point 202 and has buffered up to point 204. A secondbar 205 displays the options selected up to the current point in time202. This bar 205 may be represented separately, as depicted, or may becombined with or superimposed onto video progress bar 200. Progress bars200, 205 are separated into three segments, with the separation betweeneach segment defined by a decision point 210 a, 210 b. Segments 215 aand 215 b of progress bar 205 show that an option was selected (whetherautomatically or by a viewer) at a preceding decision point, and so thevideo content played during those segments corresponds with therespective selected options.

In one example, the video associated with the progress bars 200, 205 isa music video in which the viewer selects options at the decision points210 a, 210 b to determine what content will be played. For the firstsegment 215 a, the viewer may select either a tall or short performer tosing the first verse of the song. As shown, the “Tall” option isindicated as having been selected; thus, the video associated with thetall performer was played during segment 215 a. Likewise, at decisionpoint 210 a, the viewer was provided with options to have either ablonde or brunette performer sing the second verse. Segment 215 b ofprogress bar 205 indicates that the “Blonde” option was selected, andthe video playing at current time 202 is therefore associated with thatselection. Decision point 210 b has not yet been reached, thus noselection is indicated as having been made for segment 215 c.

Still referring to FIG. 2, the progress indicator(s) 200, 205 mayinclude time information such as the current time of play 220 (measuredfrom the beginning of the video and/or the beginning of the currentvideo segment), the total video time 222 (further explained below), thetime of each decision (branching) point 230 a, 230 b (measured from thebeginning of video and/or the beginning of the current video segment),the time length of the current video segment 235 (or all or a subset ofsegments), the time interval(s) in which a viewer must select an option240 (if any), and the time until the next branching point is reached250.

In some embodiments, the progress indicator includes various statisticsassociated with the video content and dynamically displayed and updatedin real-time. The statistics associated with the video content mayinclude those described in U.S. patent application Ser. No. 13/034,645,entitled “System and Method for Data Mining within InteractiveMultimedia,” and filed Feb. 24, 2011, the entirety of which is herebyincorporated by reference. The statistical information may be textuallyor graphically presented, e.g., as icons, in different colors, pictures,and/or videos. The information may appear as interactive elements on thevideo itself, or as part of the progress indicator.

The statistics may be associated with viewer selections based onprevious plays of a video by the viewer, the viewer's friends, socialnetworking connections, and/or all other users. For the example, theprogress bar may display how popular a particular option is, and/or howmany times a particular option was chosen (see FIG. 3), and may includea list of connections (e.g., Facebook friends, email contacts, Twitterfollowers, etc.) that chose the same option (or an indication of whatoption(s) were instead chosen). These statistical displays may bedynamically updated as viewers watch videos and make choices. Forexample, if each viewer in a group of Facebook friends separatelywatches a particular video at the same time, each may see variousstatistical indicators on the progress bar update in real-time asfriends make selections on which video content paths to follow.

Stylized markers (e.g., stars, text, or other graphical icons) may besuperimposed on or otherwise associated with the progress bar when aviewer selects the most popular option at a decision point. Previouslyfollowed video content paths may be shown in a different color orotherwise highlighted upon subsequent plays. For example, the currenttraversed video path may be shown in blue, while previously followedpaths are colored yellow. The statistics may also be based on thestructure of the video, for example: the number of video paths availableto a viewer (this may be dynamically updated after each decision point),the number of overall possible paths, and/or the number of paths viewedout of the total number of possible paths.

As described above, the progress bar may include text or graphicsindicating the options available for selection at decision points and/orthe options that have previously been selected. These options may bedisplayed differently depending on the progress indicator structure. Asillustrated in FIG. 3, for tree structures 300, 330, the options mayappear on every content segment for the entire tree, or may only appearon a subset of segments, such as those segments on potentially viewablevideo content paths and/or paths already traversed. With respect to arailroad structure 360, the options 362, 364, 366 may appear from thebeginning of each track, or may appear as the options are approachedwhile viewing the video. In some embodiments, the progress indicatordoes not display any options until a particular option is selected. Inthat instance, the selected option may then be displayed on the progressindicator, and additional options may be shown as they are selected.

In some embodiments, the options are hidden and do not initially appearon the progress indicator. In these instances, a hidden option may bedisplayed on the indicator only after it is selected or discovered by aviewer while playing the video. In other embodiments, certain optionsare not shown and/or made available to all or a subset of viewers. Forexample, in some circumstances, the video may be played in a “passive”mode, meaning that the viewer cannot make some or all of the choicesthat would be available during a normal play-through of the video.Passive mode may be used to replicate a play-through using previouslymade or predefined selections, and may, for example, allow a viewer toshare his or her version of a video (i.e., the traversed path) withother viewers. In some instances, options may be hidden from viewersbased on the location they are viewing the video from. For example, somevideo segments may contain copyrighted material not licensed for displayin certain countries; thus, any options leading to those segments may behidden and/or replaced by other options.

Referring to FIG. 4, the progress indicator may provide thumbnailpreviews of video content 400 when a user interacts with the indicator.For example, upon hovering over or selecting a point in time 410 on theprogress bar configuration, the viewer may be shown a thumbnail image orvideo of one or more of the possible options that may be viewed at thatpoint. As illustrated, if at the selected point in time 410 the viewermay be traversing any one of three potential paths, then threethumbnails 400 are displayed to the viewer, each representing a separateone of the potential paths.

Thumbnail previews may be shown for points before and/or points afterthe current point in time of the video. For points prior to the currenttime, the thumbnails displayed may include all possible paths at thattime, or may only include the path traversed by the viewer. For pointsafter the current time, the thumbnails displayed may include allpossible paths at that time regardless of previous choices made, or mayonly include the paths available to the viewer based on selectionspreviously made in viewing the video. The thumbnails may be presented ina grid or any suitable format. As further described below, the viewermay select one of the thumbnails to navigate to that point in the video.

The video may be controlled by a set of navigation and playbackcontrols. In one embodiment, there are two types of controllers:constant and content. Constant controllers do not change formsignificantly (or at all) during most or all of the video playback.These controllers may be disposed outside the video, e.g., adjacent tothe progress bar, and may include standard button controls such as play,pause, seek, enable/disable subtitles, and the like. Some constantcontrols may affect audio, video, and/or an interactive layer that sitson top of the video. For example, if the user pauses a video, the audioand interactive layer may be paused as well. Content controllers mayappear on the video during playback as part of the interactive layer;these controls may be associated with the video content and may controland/or interact with it. Content controllers include, for example, theselectable options that appear prior to branching points that allow aviewer to decide how the video will continue. The interactive layer mayalso include links, pop-ups, advertisements, and/or other content thatmay permit user interaction and/or direct the viewer to other websites,videos, etc. upon selection.

Constant controls on or near the progress indicator may include a playbutton to start or continue playing the video, audio, and/or interactivelayer, and a pause button to pause playback. While a video is pausedand/or stopped, buffering of the content may continue, and in someinstances, the interactive layer may continue to function so that aviewer can select a content option at a decision point while playback ispaused and have the resulting selection affect the video after resumingplay. A stop button may be included to allow a viewer to return tobeginning of the video. In some instances, a viewer's previouslyselected options persist after stopping the video. Volume control andmute toggling buttons may also be included as constant controls.

The playback controls may further include seek buttons for navigatingthe various paths and segments of the video. Fast-forward and/orfast-backward buttons may adjust the viewer's position in the videoaccordingly, or may seek in fixed increments, such as three-second,five-second, or ten-second jumps. A “snap-seek” function may be providedthat allows the viewer to seek predefined points in the video, such asimmediately prior to decision points. Upon seeking backwards, theviewer's previous selections may be saved or reset. Upon seeking forwardpast a decision point, the video player may automatically select adecision (e.g., default, last used, most common), or may use a previousselection made by the viewer, if any. If the viewer attempts to seek toa point on the video timeline that has yet to be buffered, a “loading”indicator may be displayed while the video downloads.

The progress bar itself may be used for navigating within a progressstatus tree structure, and may include various interactive controls fordoing so. For example, a viewer may jump to a specific point on the treeby selecting and/or clicking on that point. Markers on the progress barmay also be selected as specific jump points; for example, a theprogress bar may display predefined time stamps and/or segmentidentifiers that may be selected, whereby a viewer is directed to a theidentified time or segment. These markers may be placed, for example,shortly before branching points to allow the viewer to select a path tofollow, shortly after branching points, or at any other point on a videocontent path. Again, a “loading” indicator may be displayed if theviewer attempts to view video that has not yet been buffered.

As described above, navigation controls may also include the ability toseek to a particular point in time or segment in the video by selectinga thumbnail from a group of one or more thumbnails that appears whenhovering over a point on the progress bar. In selecting a particularsegment to seek to, it may be assumed that the option(s) selected atdecision point(s) prior to that segment (if any) are those that wouldneed to have been made to reach the segment corresponding to theselected thumbnail. These assumed selections may be tracked forstatistical purposes as previously described.

Upon seeking, the video, audio, and interactive layer remainssynchronized, such that the selected segment presented to the viewerincludes the same audio, video, and interactive components that wouldhave been presented to the viewer had reached the same point withoutseeking. In other cases, different video, audio, and/or interactivecomponents may be presented to the viewer, such as modified orcustomized options at decision points.

When the progress indicator is structured in a line form (see FIG. 1),special considerations may be taken to determine how to display thevideo length and progress after the current point of playback. Forexample, at a decision point in the video, a viewer may have the optionof either continuing down a path that is two minutes long or one that isfour minutes long. Because each video path may have different numbers ofsegments, and each segment may vary in duration, the progress bardisplay may accommodate these variations as well as other differences invideo segments that may affect progress calculations. This informationassociated with the progress bar may be dynamically updated andrecalculated throughout progression of the video, and/or after eachdecision point or selection of a video segment option.

The following methods may be used to estimate the total amount of timeremaining in a video, and adjust the progress display accordingly: (1)assume that default selections are made for all remaining decisionpoints; (2) use the decision point selections from the previousplayback; (3) use decision point selections previously made by thecurrent viewer and/or other viewers; (4) use the most common selectionat each remaining decision point; (5) assume the longest duration pathis traversed (i.e., determine the maximum total duration of eachpossible combination of remaining video segments); (6) assume theshortest duration path is traversed (i.e., determine the minimum totalduration of each possible combination of remaining video segments); (7)use the average duration of the possible remaining paths; and/or (8) usethe average duration of all possible remaining segments. In someversions the viewer may select which estimation methods are used. Theprogress status may display more than one calculated value; for example,the minimum and maximum times left to play may be shown together. Ininstances where the total video length is desired (not just theremaining length), the above calculations may include the durations ofthe already-traversed segments, or may include the durations of themaximum, minimum, and/or average segments or paths, regardless ofwhether or not traveled.

FIG. 5 illustrates an example of calculating the maximum duration of avideo when the paths contain different numbers of segments. With respectto tree structure 510, at the start of the video 512, the maximumduration path includes segments A1+B1+C1+D1 for a total video length ofsix minutes and thirty seconds. If, at decision point 514, a viewerselects segment B2, the remaining maximum duration is B2+D1 (threeminutes), with a total video length of A1+B2+D1 (five minutes and thirtyseconds).

Referring further to FIG. 5, tree structure 520 is used to illustratethe calculation of an average video duration in a video having varyingsegment sizes at single decision points. At the beginning of the video522, there are four possible paths that may be followed by a viewer:A1+B1+C1 (five minutes and thirty seconds); A1+B1+C2 (six minutes andfifteen seconds); A1+B2+C3 (five minutes); and A1+B2+C4 (four minutesand thirty seconds). The average duration of all these paths isapproximately five minutes and nineteen seconds, and this value may bedisplayed on the progress bar as the total video length. If, at decisionpoint 524, option B2 is selected, the paths containing B1 may bedisregarded in calculating the average length. Accordingly, the totalvideo length would then be updated to display the average of pathsA1+B2+C3 and A1+B2+C4, or four minutes and forty-five seconds. The totalremaining video length may be calculated by taking the average of pathsB2+C3 and B2+C4, or by any other suitable calculation as describedabove.

In some instances, the video allows for an option at a decision point toreturn the viewer to a segment at an earlier point in the same or adifferent video path, essentially allowing the viewer to enter into avideo loop. In response to a looping action, the progress indicator mayreturn the playback cursor to the desired segment on the line or treestructure, or, alternatively, the cursor may remain at the current pointand the length of play may be recalculated appropriately (e.g., thevideo length may be extended by the length of the looped part, or analternate method of calculation as described above may be used). Toaccommodate the extended playback, the progress bar may extend itslength or resize its existing representation of segments to fit thelooped portion.

In the instance of “unfolding” videos, the configuration of the progressbar as well as its associated time markers and other information may beupdated as the video progresses. As shown in FIG. 6, the video unfoldswhen a viewer interacts with it. For example, a streaming video clip ona website may include a fifteen-second pre-roll advertising segmentprior to playing the clip content. If a viewer does not interact 600with the advertisement, the pre-roll completes after fifteen seconds andthe content is played. If, however, the viewer interacts once 610 withthe advertisement, the pre-roll adds an additional fifteen-secondsegment to allow for further interaction. If the viewer then interacts asecond time 620 with the advertisement, the pre-roll is furtherextended. The unfolding of the pre-roll prior to playing the content maycontinue indefinitely, or may cease after a certain number of segmentsare added. As the video unfolds, the progress bar is updated toaccommodate the additional length.

In some embodiments, the progress indicator may support video detours;that is, interrupting the playback of the current video to view anothervideo, and returning to the previous point in playback after the detourvideo completes playback or is otherwise terminated. Referring to thetree structure progress bar illustrated in FIG. 7, at point 700 atviewer may be given an option to watch a detour video. For example, thecurrently playing video may include an actor using a new video gamesystem, and an interactive control is provided to the viewer totemporarily break from the video to watch an advertisement for thatproduct. If the viewer opts to watch the detour video 710, playback mayresume immediately after the point of the detour 720, or may continue atsome other point in the video. If the progress bar is represented in aline form, the bar may be presented without the detour segment. If thedetour is taken, the bar may be increased in size by the detour length,and/or the time indicators associated with the bar may be recalculatedand updated.

In various embodiments, the behavior of the progress indicator maydynamically change in order to influence the perception of the viewer.For example, the graphical progress playback status of the video mayappear to speed up for several seconds leading up to a decision point.The playback progression status may pause at various points during thevideo without also pausing the corresponding video and audio content.Other instances of progress acceleration and/or deceleration may beutilized for effect. In some instances, the graphical effects such aspulses, ripples, coloring, and the like are applied to the progressindicator.

In some embodiments, an interactive content authoring tool is used tocreate the selectably presentable video content described herein. Theprogress bar may be included as part of the authoring tool to assist inthe formation of this content.

One skilled in the art will recognize the various forms in which thesystems and methods described herein may be implemented. For example,the invention may include a progress indicator module for progress,status, and statistical information for video content, and aninteractive control module for navigating the video content. Thesefunctions may be implemented in any appropriate hardware or software. Ifimplemented as software, the invention may execute on a system capableof running a commercial operating system such as the Microsoft Windows®operating systems, the Apple OS X® operating systems, the Apple iOS®platform, the Google Android™ platform, the Linux® operating system andother variants of UNIX® operating systems, and the like.

The software may be implemented on such hardware as a smart or dumbterminal, network computer, personal digital assistant, wireless device,smartphone, game machine, music player, mobile telephone, laptop,palmtop, wireless telephone, information appliance, workstation,minicomputer, mainframe computer, or other computing device, that isoperated as a general purpose computer or a special purpose hardwaredevice that can execute the herein described functionality. The softwaremay be implemented on a general purpose computing device in the form ofa computer including a processing unit, a system memory, and a systembus that couples various system components including the system memoryto the processing unit.

The described systems may include a plurality of software processingmodules stored in a memory and executed on a processor in the mannerdescribed herein. The program modules may be in the form of any or moresuitable programming languages, which are converted to machine languageor object code to allow the processor or processors to read theinstructions. The software may be in the form of a standaloneapplication, implemented in a multi-platform language/framework such asJava, .Net, Objective C, or in native processor executable code.Illustratively, a programming language used may include assemblylanguage, Ada, APL, Basic, C, C++, C#, Objective C, COBOL, dBase, Forth,FORTRAN, Java, Modula-2, Pascal, Prolog, REXX, and/or JavaScript, forexample.

Method steps of the techniques described herein can be performed by oneor more programmable processors executing a computer program to performfunctions of the invention by operating on input data and generatingoutput. Method steps can also be performed by, and apparatus of theinvention can be implemented as, special purpose logic circuitry, e.g.,an FPGA (field programmable gate array) or an ASIC (application-specificintegrated circuit). Modules can refer to portions of the computerprogram and/or the processor/special circuitry that implements thatfunctionality.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read-only memory ora random access memory or both. The essential elements of a computer area processor for executing instructions and one or more memory devicesfor storing instructions and data. Information carriers suitable forembodying computer program instructions and data include all forms ofnon-volatile memory, including by way of example semiconductor memorydevices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks,e.g., internal hard disks or removable disks; magneto-optical disks; andCD-ROM and DVD-ROM disks. The processor and the memory can besupplemented by, or incorporated in special purpose logic circuitry.

The techniques described herein can be implemented in a distributedcomputing system that includes a back-end component, e.g., as a dataserver, and/or a middleware component, e.g., an application server,and/or a front-end component, e.g., a client computer having a graphicaluser interface and/or a Web browser through which a user can interactwith an implementation of the invention, or any combination of suchback-end, middleware, or front-end components. The components of thesystem can be interconnected by any form or medium of digital datacommunication, e.g., a communication network. Examples of communicationnetworks include a local area network (“LAN”) and a wide area network(“WAN”), e.g., the Internet, and include both wired and wirelessnetworks.

The system can include client and servers computers. A client and serverare generally remote from each other and typically interact over acommunication network. The relationship of client and server arises byvirtue of computer programs running on the respective computers andhaving a client-server relationship to each other.

In various embodiments, the client computers include a web browser,client software, or both. The web browser allows the client to request aweb page or other downloadable program, applet, or document (e.g., fromthe server(s)) with a web page request. One example of a web page is adata file that includes computer executable or interpretableinformation, graphics, sound, text, and/or video, that can be displayed,executed, played, processed, streamed, and/or stored and that cancontain links, or pointers, to other web pages. In one embodiment, auser of the client manually requests a web page from the server.Alternatively, the client automatically makes requests with the webbrowser. Examples of commercially available web browser software areMicrosoft® Internet Explorer®, Mozilla® Firefox®, and Apple® Safari®.

In some embodiments, the client computers include client software. Theclient software provides functionality to the client that provides forthe implementation and execution of the features described herein. Theclient software may be implemented in various forms, for example, it maybe in the form of a web page, widget, and/or Java, JavaScript, .Net,Silverlight, Flash, and/or other applet or plug-in that is downloaded tothe client and runs in conjunction with the web browser. The clientsoftware and the web browser may be part of a single client-serverinterface; for example, the client software can be implemented as a“plug-in” to the web browser or to another framework or operatingsystem. Any other suitable client software architecture, including butnot limited to widget frameworks and applet technology may also beemployed with the client software. The client software may also be inthe form of a standalone application, implemented in a multi-platformlanguage/framework as described above.

A communications network may connect the clients with the servers. Thecommunication may take place via any media such as standard telephonelines, LAN or WAN links (e.g., T1, T3, 56 kb, X.25), broadbandconnections (ISDN, Frame Relay, ATM), wireless links (802.11, Bluetooth,GSM, CDMA, etc.), and so on. The network may carry TCP/IP protocolcommunications, and HTTP/HTTPS requests made by a web browser, and theconnection between the clients and servers can be communicated over suchTCP/IP networks. The type of network is not a limitation, however, andany suitable network may be used

In a client-server environment, the servers may be implemented on one ormore server class computers that have sufficient memory, data storage,and processing power and that run a server class operating system (e.g.,Oracle® Solaris®, GNU/Linux®, and the Microsoft® Windows® family ofoperating systems). Other types of system hardware and software thanthat described herein may also be used, depending on the capacity of thedevice and the number of users and the size of the user base.

Although internal components of the computer are not shown, those ofordinary skill in the art will appreciate that such components and theinterconnections are well known. Accordingly, additional detailsconcerning the internal construction of the computers need not bedisclosed in connection with the present invention.

What is claimed is:
 1. A system for navigating and visualizing the progression of selectably presentable video content, the system comprising: a computing device having at least one processing unit programmed to provide: a progress indicator module for providing for display a dynamic progression status of at least one of a plurality of video content paths, each content path comprising a plurality of selectably presentable video content segments, wherein the progression status comprises a video content length indicator that is dynamically updated after each decision point to indicate a possible amount of remaining video playback time, wherein the possible amount of remaining video playback time is based on the playback lengths of one or more potentially viewable video content segments in one or more video content paths following the decision point, and wherein a particular decision point comprises a point in a video content segment for determining a transition from the video content segment to one of a plurality of other video content segments, wherein the possible amount of remaining video playback time comprises at least one of a maximum duration based in part on a possible video content path following the decision point and having the longest total length of video content segments, a minimum duration based in part on a possible video content path following the decision point and having the shortest total length of video content segments, and an average duration based in part on an average playback length of all possible video content paths following the decision point; and an interactive control module for facilitating navigation along the video content paths.
 2. The system of claim 1, wherein the progression status comprises a visual indicator representing one or more of a portion of video content downloaded, a portion of video content played, and a portion of video content remaining for download.
 3. The system of claim 1, wherein the progression status comprises at least one visual indicator identifying a decision point for transitioning from a source video content segment to a selectable one of a plurality of target video content segments.
 4. The system of claim 3, wherein the progression status further comprises a time marker for the decision point, the time marker measured from the beginning of a currently traveled video content path.
 5. The system of claim 3, wherein the progression status further comprises a time interval representing an amount of time permitted, upon reaching the decision point, to select one of the target video content segments to continue on a video content path.
 6. The system of claim 3, wherein the progression status further comprises an amount of time until the decision point is reached.
 7. The system of claim 3, wherein the progression status further comprises at least one option indicator identifying each target video content segment for potential selection at the decision point.
 8. The system of claim 3, wherein the progression status further comprises an option indicator identifying a selected one of the target video content segments, the option indicator displayed upon selection of the selection segment at the decision point.
 9. The system of claim 1, wherein the progression status is dynamically updated after each decision point along a currently traveled video content path.
 10. The system of claim 1, wherein the progression status comprises a graphical tree structure.
 11. The system of claim 10, wherein the tree structure comprises linked video content segments forming a traveled video content path prior to a current point in time.
 12. The system of claim 11, wherein the tree structure further comprises potential selectable video content segments branching from the traveled video content path after the current point in time.
 13. The system of claim 10, wherein the tree structure comprises linked video content segments forming all of the video content paths.
 14. The system of claim 10, wherein the control module facilitates navigation within the tree structure.
 15. The system of claim 1, wherein the progression status comprises statistics based on user selection of the video content segments.
 16. The system of claim 1, further comprising a preview module for providing for display a plurality of video thumbnails associated with a particular point in time of the progression status, each video thumbnail representing a respective video content segment from a different one of the video content paths, the respective video content segment being potentially viewable at the particular point in time.
 17. The system of claim 16, wherein the control module, upon selection of one of the video thumbnails, seeks to the video content segment corresponding to the thumbnail.
 18. A method for navigating and visualizing the progression of selectably presentable video content, the method comprising the steps of: providing for display, by a computing device having at least one processing unit, a dynamic progression status of at least one of a plurality of video content paths, each content path comprising a plurality of selectably presentable video content segments, wherein the progression status comprises a video content length indicator that is dynamically updated after each decision point to indicate a possible amount of remaining video playback time, wherein the possible amount of remaining video playback time is based on the playback lengths of one or more potentially viewable video content segments in one or more video content paths following the decision point, and wherein a particular decision point comprises a point in a video content segment for determining a transition from the video content segment to one of a plurality of other video content segments, wherein the possible amount of remaining video playback time comprises one or more of a maximum duration based in part on a possible video content path following the decision point and having the longest total length of video content segments, a minimum duration based in part on a possible video content path following the decision point and having the shortest total length of video content segments, and an average duration based in part on an average playback length of all possible video content paths following the decision point; and facilitating navigation along the video content paths.
 19. The method of claim 18, wherein the progression status comprises a visual indicator representing one or more of a portion of video content downloaded, a portion of video content played, and a portion of video content remaining for download.
 20. The method of claim 18, wherein the progression status comprises at least one visual indicator identifying a decision point for transitioning from a source video content segment to a selectable one of a plurality of target video content segments.
 21. The method of claim 20, wherein the progression status further comprises a time marker for the decision point, the time marker measured from the beginning of a currently traveled video content path.
 22. The method of claim 20, wherein the progression status further comprises a time interval representing an amount of time permitted, upon reaching the decision point, to select one of the target video content segments to continue on a video content path.
 23. The method of claim 20, wherein the progression status further comprises an amount of time until the decision point is reached.
 24. The method of claim 20, wherein the progression status further comprises at least one option indicator identifying each target video content segment for potential selection at the decision point.
 25. The method of claim 20, wherein the progression status further comprises an option indicator identifying a selected one of the target video content segments, the option indicator displayed upon selection of the selection segment at the decision point.
 26. The method of claim 18, further comprising dynamically updating the progression status after each decision point along a currently traveled video content path.
 27. The method of claim 18, wherein the progression status comprises a graphical tree structure.
 28. The method of claim 27, wherein the tree structure comprises linked video content segments forming a traveled video content path prior to a current point in time.
 29. The method of claim 28, wherein the tree structure further comprises potential selectable video content segments branching from the traveled video content path after the current point in time.
 30. The method of claim 27, wherein the tree structure comprises linked video content segments forming all of the video content paths.
 31. The method of claim 27, wherein the facilitating step further comprising facilitating navigation within the tree structure.
 32. The method of claim 18, wherein the progression status comprises statistics based on user selection of the video content segments.
 33. The method of claim 18, further comprising providing for display a plurality of video thumbnails associated with a particular point in time of the progression status, each video thumbnail representing a respective video content segment from a different one of the video content paths, the respective video content segment being potentially viewable at the particular point in time.
 34. The method of claim 33, further comprising upon selection of one of the video thumbnails, seeking to the video content segment corresponding to the thumbnail. 